import LayerFPS from "@/core/layers/fps";
import LayerImage from "@/core/layers/image";
import LayerSelection from "@/core/layers/selection";
import ToolSelection from '@/core/tools/selection';
import ToolSelect from '@/core/tools/select';
import CommandFileNew from "@/core/command/file/new";
import CommandFileOpen from "@/core/command/file/open";
import CommandFileSave from "@/core/command/file/save";
import ToolPencil from "@/core/tools/pencil";


export type IsContinueRender = boolean;
export type SerializableType = number | string | boolean | null | undefined;
export type SerializableObject = {
  [key: string]: SerializableType
}

export type LayerType = 'fps' | 'image' | 'selection';
export type Layer = LayerFPS | LayerImage | LayerSelection

export type CanvasContextType = 'main' | 'raster' | 'thumb';

export type ToolName = 'select' | 'selection' | 'pencil'
export type Tool = ToolSelect | ToolSelection | ToolPencil;

export type CommandKey = 'file-new' | 'file-open' | 'file-save'
export type Command = CommandFileNew | CommandFileOpen | CommandFileSave